package com.vip.jwt.config;

import com.vip.jwt.common.utils.EmailUtil;
import com.vip.jwt.common.utils.FileUtil;
import com.vip.jwt.common.utils.aliyun.AliyunCallUtil;
import com.vip.jwt.common.utils.aliyun.AliyunIDUtil;
import com.vip.jwt.common.utils.aliyun.AliyunSmsUtil;
import com.vip.jwt.common.utils.app.APPWXAuthUtil;
import com.vip.jwt.common.utils.app.APPWXPayUtil;
import com.vip.jwt.common.utils.app.APPZFBPayUtil;
import com.vip.jwt.common.utils.baidu.BaiduAudioUtil;
import com.vip.jwt.common.utils.baidu.BaiduFaceUtil;
import com.vip.jwt.common.utils.baidu.BaiduMapUtil;
import com.vip.jwt.common.utils.baidu.BaiduOCRUtil;
import com.vip.jwt.common.utils.cnmobile.CNMobileCallUtil;
import com.vip.jwt.common.utils.cntelecom.CNTelecomCallUtil;
import com.vip.jwt.common.utils.goeasy.GoEasyUtil;
import com.vip.jwt.common.utils.xcx.wx.WXAuthUtil;
import com.vip.jwt.common.utils.xcx.wx.WXPayUtil;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 配置Bean的配置文件
 */
@Configuration
public class UtilConfig {

    /**
     * GoEasy工具类
     * @return
     */
    @Bean
    public GoEasyUtil goEasyUtil(){
        return new GoEasyUtil();
    }

    /**
     * 文件工具类
     * @return
     */
    @Bean
    public FileUtil fileUtil(){
        return new FileUtil();
    }

    /**
     * App授权工具类（微信授权）
     * @return
     */
    @Bean
    public APPWXAuthUtil appwxAuthUtil(){
        return new APPWXAuthUtil();
    }

    /**
     * App支付工具类（微信支付）
     * @return
     */
    @Bean
    public APPWXPayUtil appwxPayUtil(){
        return new APPWXPayUtil();
    }

    /**
     * 微信授权工具类
     * @return
     */
    @Bean
    public WXAuthUtil wxAuthUtil(){
        return new WXAuthUtil();
    }

    /**
     * 微信支付工具
     * @return
     */
    @Bean
    public WXPayUtil wxPayUtil(){
        return new WXPayUtil();
    }

    /**
     * 百度人脸识别工具类
     * @return
     */
    @Bean
    public BaiduFaceUtil baiduFaceUtil(){
        return new BaiduFaceUtil();
    }

    /**
     * 百度云图像识别工具类
     * @return
     */
    @Bean
    public BaiduOCRUtil baiduOCRUtil(){
        return new BaiduOCRUtil();
    }

    /**
     * 百度语音技术工具类
     * @return
     */
    @Bean
    public BaiduAudioUtil baiduAudioUtil(){
        return new BaiduAudioUtil();
    }

    /**
     * 百度地图工具类
     * @return
     */
    @Bean
    public BaiduMapUtil baiduMapUtil(){
        return new BaiduMapUtil();
    }

    /**
     * 阿里云关于身份证工具类
     * @return
     */
    @Bean
    public AliyunIDUtil aliyunIDCardUtil(){
        return new AliyunIDUtil();
    }

    /**
     * 阿里云短信服务工具类
     * @return
     */
    @Bean
    public AliyunSmsUtil aliyunSmsUtil(){
        return new AliyunSmsUtil();
    }

    /**
     * 阿里云语音通知工具类
     * @return
     */
    @Bean
    public AliyunCallUtil aliyunCallUtil(){
        return new AliyunCallUtil();
    }

    /**
     * App支付宝支付工具
     * @return
     */
    @Bean
    public APPZFBPayUtil appzfbPayUtil(){
        return new APPZFBPayUtil();
    }

    /**
     * 邮箱工具类
     * @return
     */
    @Bean
    public EmailUtil emailUtil(){
        return new EmailUtil();
    }

    /**
     * 中国移动能力开放商店语音通知工具类
     * @return
     */
    @Bean
    public CNMobileCallUtil cnMobileCallUtil(){
        return new CNMobileCallUtil();
    }

    /**
     * 中国电信开放平台语音通知工具类
     * @return
     */
    @Bean
    public CNTelecomCallUtil cnTelecomCallUtil(){
        return new CNTelecomCallUtil();
    }

}
